library(plotly)
Registered S3 method overwritten by 'data.table':
method from
print.data.table
Registered S3 method overwritten by 'htmlwidgets':
method from
print.htmlwidget tools:rstudio
Attaching package: ‘plotly’
The following object is masked from ‘package:ggplot2’:
last_plot
The following object is masked from ‘package:stats’:
filter
The following object is masked from ‘package:graphics’:
layout
source(file = "cleaning.R")
Rows: 128992 Columns: 18── Column specification ─────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (12): Quarter, QuarterQF, HB, HBQF, Location, LocationQF, AdmissionType, AdmissionTypeQF, Sex, Ag...
dbl (6): Episodes, LengthOfEpisode, AverageLengthOfEpisode, Stays, LengthOfStay, AverageLengthOfStay
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.Rows: 40711 Columns: 18── Column specification ─────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (11): Quarter, QuarterQF, HB, HBQF, Location, LocationQF, AdmissionType, AdmissionTypeQF, SIMDQF,...
dbl (7): SIMD, Episodes, LengthOfEpisode, AverageLengthOfEpisode, Stays, LengthOfStay, AverageLength...
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
inputs <- list(
admission_input = "Emergency Inpatients",
sex_input = "Male",
age_input = "40-49 years",
simd_input = 5,
age_sex = "age",
lockdown_input = "post"
)
bot_simd_clean %>%
filter(admission_type == inputs$admission_input) %>%
group_by(simd) %>%
summarise(total_episodes = sum(episodes)) %>%
ggplot()+
aes(x = simd,
y = total_episodes,
fill = as.factor(simd)) +
geom_col() +
theme_minimal()+
labs(
x = "SIMD Level",
y = "Total Episodes"
) +
theme(
legend.position = "none"
)

bot_sex_clean %>%
group_by(age,
sex) %>%
summarise(total_episodes = sum(episodes)) %>%
ggplot()+
aes(x = age,
y = total_episodes,
fill = sex) +
geom_col(position = "dodge") +
theme_minimal()+
labs(
x = "\nAge Ranges",
y = "Total Episodes\n"
) +
theme(
legend.position = "none",
axis.text.x = element_text(angle = 315,
vjust = 0.2,
hjust = 0.5)
)
`summarise()` has grouped output by 'age'. You can override using the `.groups` argument.

bot_sex_clean %>%
filter(age == inputs$age_input,
admission_type %in% c("Elective Inpatients",
"Emergency Inpatients")) %>%
group_by(age, admission_type) %>%
summarise(tot_episodes = sum(episodes)) %>%
ggplot()+
aes(x = age,
y = tot_episodes,
fill = admission_type) +
geom_col(position = "dodge")
`summarise()` has grouped output by 'age'. You can override using the `.groups` argument.

ggplotly(bot_simd_clean %>%
drop_na(simd) %>%
filter(admission_type %in% c("Elective Inpatients",
"Emergency Inpatients"),
lockdown == inputs$lockdown_input) %>%
group_by(simd, admission_type) %>%
summarise(total_episodes = sum(episodes)) %>%
ggplot()+
aes(x = simd,
y = total_episodes,
fill = admission_type) +
geom_col(position = "stack")+
theme_minimal(
) +
labs(
x = "\nSIMD Ranking",
y = "Total Episodes\n",
fill = "Admission Type"
))
`summarise()` has grouped output by 'simd'. You can override using the `.groups` argument.
bot_sex_clean %>%
group_by(sex, quarter) %>%
summarise(mean_episodes = mean(episodes)) %>%
ggplot() +
aes(x = quarter,
y = mean_episodes,
group = sex,
colour = sex) +
geom_line() +
theme(
axis.text.x = element_text(angle = 315,
vjust = 0.2,
hjust = 0.5)
)
`summarise()` has grouped output by 'sex'. You can override using the `.groups` argument.

bot_simd_clean %>%
drop_na(simd) %>%
filter(admission_type %in% c("Elective Inpatients",
"Emergency Inpatients")) %>%
group_by(simd, admission_type) %>%
summarise(mean_episodes = sum(episodes)) %>%
ggplot()+
aes(x = simd,
y = mean_episodes,
fill = admission_type) +
geom_col(position = "stack")
`summarise()` has grouped output by 'simd'. You can override using the `.groups` argument.

bot_simd_clean %>%
drop_na(simd) %>%
filter(admission_type %in% c("Elective Inpatients",
"Emergency Inpatients")) %>%
group_by(simd, admission_type) %>%
summarise(mean_episodes = sum(episodes))
`summarise()` has grouped output by 'simd'. You can override using the `.groups` argument.
ggplotly(covid_simd %>%
ggplot() +
aes(
x = simd_quintile,
y = first_infections,
fill = as.factor(simd_quintile),
text = first_infections
) +
geom_col()
)
bot_sex_clean %>%
filter(age == "0-9 years") %>%
group_by(sex)
LS0tCnRpdGxlOiAiRXVhbiBBbmFseXNpcyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpgYGB7cn0KbGlicmFyeShwbG90bHkpCmBgYAoKCmBgYHtyfQpzb3VyY2UoZmlsZSA9ICJjbGVhbmluZy5SIikKYGBgCgoKCmBgYHtyfQppbnB1dHMgPC0gbGlzdCgKICBhZG1pc3Npb25faW5wdXQgPSAiRW1lcmdlbmN5IElucGF0aWVudHMiLAogIHNleF9pbnB1dCA9ICJNYWxlIiwKICBhZ2VfaW5wdXQgPSAiNDAtNDkgeWVhcnMiLAogIHNpbWRfaW5wdXQgPSA1LAogIGFnZV9zZXggPSAiYWdlIiwKICBsb2NrZG93bl9pbnB1dCA9ICJwb3N0IgogIAogIAopCmBgYAoKCgoKCmBgYHtyfQoKYm90X3NpbWRfY2xlYW4gJT4lIAogIGZpbHRlcihhZG1pc3Npb25fdHlwZSA9PSBpbnB1dHMkYWRtaXNzaW9uX2lucHV0KSAlPiUgCiAgZ3JvdXBfYnkoc2ltZCkgJT4lIAogIHN1bW1hcmlzZSh0b3RhbF9lcGlzb2RlcyA9IHN1bShlcGlzb2RlcykpICU+JSAKICBnZ3Bsb3QoKSsKICBhZXMoeCA9IHNpbWQsCiAgICAgIHkgPSB0b3RhbF9lcGlzb2RlcywKICAgICAgZmlsbCA9IGFzLmZhY3RvcihzaW1kKSkgKwogIGdlb21fY29sKCkgKwogIHRoZW1lX21pbmltYWwoKSsKICBsYWJzKAogICAgeCA9ICJTSU1EIExldmVsIiwKICAgIHkgPSAiVG90YWwgRXBpc29kZXMiCiAgKSArCiAgdGhlbWUoCiAgICBsZWdlbmQucG9zaXRpb24gPSAibm9uZSIKICApCmBgYAoKYGBge3J9CmJvdF9zZXhfY2xlYW4gJT4lIAogIGdyb3VwX2J5KGFnZSwKICAgICAgICAgICBzZXgpICU+JSAKICBzdW1tYXJpc2UodG90YWxfZXBpc29kZXMgPSBzdW0oZXBpc29kZXMpKSAlPiUgCiAgZ2dwbG90KCkrCiAgYWVzKHggPSBhZ2UsCiAgICAgIHkgPSB0b3RhbF9lcGlzb2RlcywKICAgICAgZmlsbCA9IHNleCkgKwogIGdlb21fY29sKHBvc2l0aW9uID0gImRvZGdlIikgKwogIHRoZW1lX21pbmltYWwoKSsKICBsYWJzKAogICAgeCA9ICJcbkFnZSBSYW5nZXMiLAogICAgeSA9ICJUb3RhbCBFcGlzb2Rlc1xuIgogICkgKwogIHRoZW1lKAogICAgbGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiLAogICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSAzMTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2anVzdCA9IDAuMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhqdXN0ID0gMC41KQogICkKCgpgYGAKCgpgYGB7cn0KYm90X3NleF9jbGVhbiAlPiUgCiAgZmlsdGVyKGFnZSA9PSBpbnB1dHMkYWdlX2lucHV0LAogICAgICAgICBhZG1pc3Npb25fdHlwZSAlaW4lIGMoIkVsZWN0aXZlIElucGF0aWVudHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVtZXJnZW5jeSBJbnBhdGllbnRzIikpICU+JSAKICBncm91cF9ieShhZ2UsIGFkbWlzc2lvbl90eXBlKSAlPiUgCiAgc3VtbWFyaXNlKHRvdF9lcGlzb2RlcyA9IHN1bShlcGlzb2RlcykpICU+JSAKICBnZ3Bsb3QoKSsKICBhZXMoeCA9IGFnZSwKICAgICAgeSA9IHRvdF9lcGlzb2RlcywKICAgICAgZmlsbCA9IGFkbWlzc2lvbl90eXBlKSArCiAgZ2VvbV9jb2wocG9zaXRpb24gPSAiZG9kZ2UiKQpgYGAKCgoKYGBge3J9CnNpbWRfc3RhY2sgPC0gZ2dwbG90bHkoYm90X3NpbWRfY2xlYW4gJT4lIAogIGRyb3BfbmEoc2ltZCkgJT4lIAogIGZpbHRlcihhZG1pc3Npb25fdHlwZSAlaW4lIGMoIkVsZWN0aXZlIElucGF0aWVudHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVtZXJnZW5jeSBJbnBhdGllbnRzIiksCiAgICAgICAgIGxvY2tkb3duID09IGlucHV0cyRsb2NrZG93bl9pbnB1dCkgJT4lIAogIGdyb3VwX2J5KHNpbWQsIGFkbWlzc2lvbl90eXBlKSAlPiUgCiAgc3VtbWFyaXNlKHRvdGFsX2VwaXNvZGVzID0gc3VtKGVwaXNvZGVzKSkgJT4lIAogIGdncGxvdCgpKwogIGFlcyh4ID0gc2ltZCwKICAgICAgeSA9IHRvdGFsX2VwaXNvZGVzLAogICAgICBmaWxsID0gYWRtaXNzaW9uX3R5cGUpICsKICBnZW9tX2NvbChwb3NpdGlvbiA9ICJzdGFjayIpKwogIHRoZW1lX21pbmltYWwoCiAgKSArCiAgbGFicygKICAgIHggPSAiXG5TSU1EIFJhbmtpbmciLAogICAgeSA9ICJUb3RhbCBFcGlzb2Rlc1xuIiwKICAgIGZpbGwgPSAiQWRtaXNzaW9uIFR5cGUiCiAgKSkKYGBgCgpgYGB7cn0KYm90X3NleF9jbGVhbiAlPiUgCiAgZ3JvdXBfYnkoc2V4LCBxdWFydGVyKSAlPiUgCiAgc3VtbWFyaXNlKG1lYW5fZXBpc29kZXMgPSBtZWFuKGVwaXNvZGVzKSkgJT4lIAogIGdncGxvdCgpICsKICBhZXMoeCA9IHF1YXJ0ZXIsCiAgICAgIHkgPSBtZWFuX2VwaXNvZGVzLAogICAgICBncm91cCA9IHNleCwKICAgICAgY29sb3VyID0gc2V4KSArCiAgZ2VvbV9saW5lKCkgKwogIHRoZW1lKAogICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSAzMTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2anVzdCA9IDAuMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhqdXN0ID0gMC41KQogIAogICAgKQogIAogIApgYGAgCgpgYGB7cn0KYm90X3NpbWRfY2xlYW4gJT4lIAogIGRyb3BfbmEoc2ltZCkgJT4lIAogIGZpbHRlcihhZG1pc3Npb25fdHlwZSAlaW4lIGMoIkVsZWN0aXZlIElucGF0aWVudHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVtZXJnZW5jeSBJbnBhdGllbnRzIikpICU+JSAKICBncm91cF9ieShzaW1kLCBhZG1pc3Npb25fdHlwZSkgJT4lIAogIHN1bW1hcmlzZShtZWFuX2VwaXNvZGVzID0gbWVhbihlcGlzb2RlcykpICU+JSAKICBnZ3Bsb3QoKSsKICBhZXMoeCA9IHNpbWQsCiAgICAgIHkgPSBtZWFuX2VwaXNvZGVzLAogICAgICBmaWxsID0gYWRtaXNzaW9uX3R5cGUpICsKICBnZW9tX2NvbChwb3NpdGlvbiA9ICJzdGFjayIpCmBgYAoKCmBgYHtyfQpib3Rfc2ltZF9jbGVhbiAlPiUgCiAgZHJvcF9uYShzaW1kKSAlPiUgCiAgZmlsdGVyKGFkbWlzc2lvbl90eXBlICVpbiUgYygiRWxlY3RpdmUgSW5wYXRpZW50cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW1lcmdlbmN5IElucGF0aWVudHMiKSkgJT4lIAogIGdyb3VwX2J5KHNpbWQsIGFkbWlzc2lvbl90eXBlKSAlPiUgCiAgc3VtbWFyaXNlKG1lYW5fZXBpc29kZXMgPSBzdW0oZXBpc29kZXMpKQpgYGAKCgpgYGB7cn0KZ2dwbG90bHkoY292aWRfc2ltZCAlPiUgCgogIGdncGxvdCgpICsKICAgIGFlcygKICAgICAgeCA9IHNpbWRfcXVpbnRpbGUsCiAgICAgIHkgPSBmaXJzdF9pbmZlY3Rpb25zLAogICAgICBmaWxsID0gYXMuZmFjdG9yKHNpbWRfcXVpbnRpbGUpLAogICAgICB0ZXh0ID0gZmlyc3RfaW5mZWN0aW9ucwogICAgKSArCiAgICBnZW9tX2NvbCgpCikKYGBgCgoKCmBgYHtyfQpnZ3Bsb3RseShjb3ZpZF9zaW1kICU+JSAKCiAgZ2dwbG90KCkgKwogICAgYWVzKAogICAgICB4ID0gc2ltZF9xdWludGlsZSwKICAgICAgeSA9IHJlaW5mZWN0aW9ucywKICAgICAgdGV4dCA9IHJlaW5mZWN0aW9ucwogICAgKSArCiAgICBnZW9tX2NvbChmaWxsID0gImJsdWUiKSArCiAgICB0aGVtZV9taW5pbWFsKCksCiAgdG9vbHRpcCA9ICJ0ZXh0IgopCmBgYAoKCmBgYHtyfQpib3Rfc2V4X2NsZWFuICU+JSAKICBmaWx0ZXIoYWdlID09ICIwLTkgeWVhcnMiKSAlPiUgCiAgZ3JvdXBfYnkoc2V4KSAKYGBgCgoK